package com.lanou3g.code0410.counter;

/**
 * Created by dllo on 18/4/10.
 */
////操作符工厂
//public class OpratorFactory {
//
//    // 根据操作符（＋－＊／来生成指定的计算类）
//    // 工厂模式
//    //HeadFirst 设计模式(一本书)
//    public static Operator getOperator(String op){
//
//        Operator operator = null; // 父类引用，指向子类对象，一个父类对象都没有创建
//        switch (op){
//            case "+":
//                operator = new OpAdd();  //多态
//                break;
//            case "-":
//                operator = new OpSub();
//                break;
//            case "*":
//                operator = new OpMultiply();
//                break;
//            case "/":
//                operator = new Opdivide();
//                break;
//
//
//        }
//        return operator;
//    }
//}

//操作符工厂
public class OpratorFactory {

    // 根据操作符（＋－＊／来生成指定的计算类）
    // 工厂模式
    //HeadFirst 设计模式(一本书)
    public static Operator getOperator(String op){

        Operator operator = null; // 父类引用，指向子类对象，一个父类对象都没有创建
        switch (op){
            case "+":
                operator = new OpAdd();  //多态
                break;
            case "-":
                operator = new OpSub();
                break;
            case "*":
                operator = new OpMultiply();
                break;
            case "/":
                operator = new Opdivide();
                break;
            case "&":
                operator = new OpPower();
                break;
            default:
                System.out.println("不支出操作符");
                break;



        }
        return operator;
    }
}
